This invention relates to microcomputers and more particularly to a control circuit for adapting microcomputers to operate with peripheral devices having access times slower than the microcomputer cycle time.
Microcomputers are devices which are designed having a number of input and output leads and some internal memory. These devices are usually used as the control system for some other complex equipment. Since a single microcomputer will find application in many diverse systems the microcomputer designer must of necessity arrange the device with a vast generality.
The microcomputer performs its required tasks by executing a user specified sequence of instructions taken from a well defined instruction set provided by the manufacturers of the microcomputer. The execution by the microcomputer of each instruction of the instruction set involves progressing through several pre-established internal machine states under control of an internal clock. These internal machine states are known as microinstructions and are typically built into the structure of the microcomputer. Many micro-instructions are executed to complete the execution of a user specified instruction. The user specified sequence of instructions which the microcomputer will execute may reside in either the internal program memory or in an external program memory or in both.
An important characteristic of microcomputers is the number of input/output (I/O) leads which link them to the external world. Whatever its task, the microcomputer must input and output data and control signals over these leads. Therefore, the number of these leads, and the way in which they can be used, determines the ease with which the microcomputer can be interfaced to a particular application. Typically, these leads are connected to peripheral devices and many signals must be sequentially communicated between the microcomputer and the devices to perform a particular operation with respect to the peripheral devices.
Some microcomputers have been designed in such a manner that certain of the leads are designated as preprogrammed leads. The microcomputer will translate certain single instructions in its basic instruction set into a number of sequential actions involving the pre-programmed leads. The sequence of actions that is invoked over these pre-programmed leads is somewhat standardized, so that a wide variety of commercial peripheral devices, such as memories, can be accessed by the sequence, the entire sequence occurring in one instruction cycle.
Problems, however, occur in situations where a peripheral device reacts slower than the cycle time of the processor.
Typical solutions would be to slow or halt the microcomputer; access the peripheral device twice and ignore the first response; access the peripheral device by connecting it to the microcomputer's general purpose I/O leads and generate the sequential actions under program control using several instruction cycles; or use some external circuit for buffering the data to or from the peripheral device. Slowing the microcomputer is contrary to present trends and has impact on all operations, not just on accesses. Some microcomputers do not have halt capability and thus this option is not possible, and in any event requires external circuitry. Some peripherals cannot tolerate double accesses thereby eliminating that possibility. Using the general purpose input/output leads would require external circuitry to supplement those leads since more general purpose leads are necessary to perform an access than are normally available. Adding external circuitry to control access to peripherals is costly and cumbersome.
Thus, a need exists in the art to allow slow peripheral access under control of a microcomputer having pre-established accessing instructions.